home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 24 / Amiga Format AFCD24 (Feb 1998, Issue 108).iso / -seriously_amiga- / shareware / programming / other / kaliosisquantrum / morb / gui.i < prev    next >
Text File  |  1998-01-12  |  11KB  |  433 lines

  1. *
  2. * CdBSian Obviously Universal & Interactive Nonsense (COUIN)
  3. * (Absurdité CdBSienne Manifestement Universelle et Interactive)
  4. * ©1997-1998, CdBS Software (MORB)
  5. * Include file for gui stuff
  6. * $Id: Gui.i 0.13 1998/01/04 15:18:04 MORB Exp MORB $
  7. *
  8.  
  9. NbGuiPlanes        = 2
  10.  
  11. GuiBufferHeight    = 256
  12. GuiBufferWidth     = 80
  13. GuiLineSize        = GuiBufferWidth*NbGuiPlanes
  14. GuiBufferSize      = GuiLineSize*GuiBufferHeight
  15. GuiModulo          = GuiLineSize-80
  16.  
  17. GuiSelBufferHeight = 256
  18. GuiSelBufferWidth  = 40
  19. GuiSelLineSize     = GuiSelBufferWidth*NbPlanes
  20. GuiSelBufferSize   = GuiSelLineSize*GuiSelBufferHeight
  21. GuiSelModulo       = GuiSelLineSize-40
  22.  
  23. HotPointX          = 1
  24. HotPointY          = 1
  25.  
  26. GuiHorSpacing      = 2
  27. GuiVerSpacing      = 1
  28.  
  29. GuiScreenWidth     = (GuiBufferWidth-4)*8
  30.  
  31.          rsreset
  32. Gui                rs.b      0
  33. g_Object           rs.l      1
  34. g_ObjectTree       rs.b      1
  35.  
  36.          rsreset
  37. GuiDomain          rs.b      0
  38. gd_Left            rs.l      1
  39. gd_Right           rs.l      1
  40. gd_Top             rs.l      1
  41. gd_Bottom          rs.l      1
  42. gd_Width           rs.l      1
  43. gd_Height          rs.l      1
  44. gd_Size            rs.l      1
  45.  
  46. ***** GuiRootClass *****
  47.          CLASS     GuiRootClass,RootClass
  48.  
  49.          METHOD    GCM_GetMinMax
  50.          METHOD    GCM_Layout
  51.          METHOD    GCM_Render
  52.          METHOD    GCM_Clear
  53.          METHOD    GCM_Click
  54.          METHOD    GCM_Handle
  55.  
  56.          DATA_BYTE guir,DTA_Domain,gd_Size
  57.          DATA_LONG guir,DTA_MinWidth,1
  58.          DATA_LONG guir,DTA_MinHeight,1
  59.          DATA_LONG guir,DTA_MaxWidth,1
  60.          DATA_LONG guir,DTA_MaxHeight,1
  61.          DATA_LONG guir,DTA_Weight,1
  62.          DATA_LONG guir,DTA_Hook,1
  63.          DATA_LONG guir,DTA_HookData,1
  64.          DATA_SIZE guir_DataSize
  65. ************************
  66.  
  67. ***** GuiClass *****
  68.          CLASS     GuiClass,GuiRootClass
  69.  
  70.          METHOD    GM_Open
  71.          METHOD    GM_Close
  72.          METHOD    GM_Move
  73.          METHOD    GM_Show
  74.          METHOD    GM_Hide
  75.          METHOD    GM_Toggle
  76.  
  77.          DATA_LONG gui,GDTA_ShownFlag,1
  78.  
  79.          DATA_LONG gui,GDTA_OldGui,1
  80.          DATA_LONG gui,GDTA_OldStyleGui,1
  81.          DATA_LONG gui,GDTA_Error,1
  82.          DATA_SIZE gui_DataSize
  83.  
  84. GUI      macro
  85.          dc.l      OBJ_Begin,_GuiClass
  86.          endm
  87.  
  88. ENDOBJ   macro
  89.          dc.l      OBJ_End
  90.          endm
  91.  
  92. STOOBJ   macro     ; address
  93.          dc.l      OBJ_Store,\1
  94.          endm
  95.  
  96. SETHOOK  macro     ; hook,hookdata
  97.          ifne      \1
  98.          dc.l      DTA_Hook,\1
  99.          endc
  100.  
  101.          ifne      \2
  102.          dc.l      DTA_HookData,\2
  103.          endc
  104.          endm
  105. ********************
  106.  
  107. ***** HGroupClass *****
  108.          CLASS     HGroupClass,GuiRootClass
  109.  
  110.          DATA_LONG hgr,HGDT_Spacing,1
  111.          DATA_SIZE hgr_DataSize
  112.  
  113. HGROUP   macro
  114.          dc.l      OBJ_Begin,_HGroupClass
  115.          endm
  116. ***********************
  117.  
  118. ***** VKnobClass *****
  119.          CLASS     VKnobClass,GuiRootClass
  120.  
  121.          DATA_LONG vkb,VKDT_TotSize,1
  122.          DATA_LONG vkb,VKDT_TotWeight,1
  123.          DATA_LONG vkb,VKDT_MinPos,1
  124.          DATA_LONG vkb,VKDT_MaxPos,1
  125.          DATA_SIZE vkb_DataSize
  126.  
  127. VKNOB    macro
  128.          dc.l      OBJ_Begin,_VKnobClass
  129.          dc.l      OBJ_End
  130.          endm
  131. ************************
  132.  
  133. ***** VGroupClass *****
  134.          CLASS     VGroupClass,GuiRootClass
  135.  
  136.          DATA_LONG vgr,VGDT_Spacing,1
  137.          DATA_SIZE vgr_DataSize
  138.  
  139. VGROUP   macro
  140.          dc.l      OBJ_Begin,_VGroupClass
  141.          endm
  142. ***********************
  143.  
  144. ***** HHandleClass *****
  145.          CLASS     HKnobClass,GuiRootClass
  146.  
  147.          DATA_LONG hkb,HKDT_TotSize,1
  148.          DATA_LONG hkb,HKDT_TotWeight,1
  149.          DATA_LONG hkb,HKDT_MinPos,1
  150.          DATA_LONG hkb,HKDT_MaxPos,1
  151.          DATA_SIZE hkb_DataSize
  152.  
  153. HKNOB    macro
  154.          dc.l      OBJ_Begin,_HKnobClass
  155.          dc.l      OBJ_End
  156.          endm
  157. ************************
  158.  
  159. ***** EmptyClass *****
  160.          CLASS     EmptyClass,GuiRootClass
  161.  
  162. EMPTY    macro
  163.          dc.l      OBJ_Begin,_EmptyClass
  164.          dc.l      OBJ_End
  165.          endm
  166. **********************
  167.  
  168. ***** ButtonClass *****
  169.          CLASS     ButtonClass,GuiRootClass
  170.  
  171.          DATA_LONG btn,BDTA_Label,1
  172.          DATA_LONG btn,BDTA_Repeat,1
  173.  
  174.          DATA_LONG btn,BDTA_TextWidth,1
  175.          DATA_LONG btn,BDTA_TextX,1
  176.          DATA_SIZE btn_DataSize
  177.  
  178. BUTTON   macro     ; label,hook,hookdata
  179.          dc.l      OBJ_Begin,_ButtonClass
  180.          dc.l      BDTA_Label,\1
  181.          SETHOOK   \2,\3
  182.          dc.l      OBJ_End
  183.          endm
  184. ***********************
  185.  
  186. ***** DragBarClass *****
  187.          CLASS     DragBarClass,ButtonClass
  188.  
  189. DRAGBAR  macro     ; label
  190.          dc.l      OBJ_Begin,_DragBarClass
  191.          dc.l      BDTA_Label,\1
  192.          dc.l      OBJ_End
  193.          endm
  194. ************************
  195.  
  196. ***** SmallButtonClass *****
  197.          CLASS     SmallButtonClass,ButtonClass
  198.  
  199.          DATA_LONG sbtn,SBDT_Char,2
  200.          DATA_LONG sbtn,SBDT_Width,1
  201.          DATA_SIZE sbtn_DataSize
  202.  
  203. SMALLBTN macro     ; char,hook,hookdata
  204.          dc.l      OBJ_Begin,_SmallButtonClass
  205.          dc.l      SBDT_Char,\1
  206.          SETHOOK   \2,\3
  207.          dc.l      OBJ_End
  208.          endm
  209. ****************************
  210.  
  211. ***** TextClass *****
  212.          CLASS     TextClass,GuiRootClass
  213.  
  214.          DATA_LONG txt,TDTA_Text,1
  215.          DATA_LONG txt,TDTA_FData,1
  216.          DATA_SIZE txt_DataSize
  217.  
  218. TEXT     macro     ; text,fdatas
  219.          dc.l      OBJ_Begin,_TextClass
  220.          dc.l      TDTA_Text,\1
  221.          dc.l      TDTA_FData,\2
  222.          dc.l      OBJ_End
  223.          endm
  224. *********************
  225.  
  226. ***** FixedTextClass *****
  227.          CLASS     FixedTextClass,TextClass
  228.  
  229. FIXEDTXT macro     ; text,fdatas
  230.          dc.l      OBJ_Begin,_FixedTextClass
  231.          dc.l      TDTA_Text,\1
  232.          dc.l      TDTA_FData,\2
  233.          dc.l      OBJ_End
  234.          endm
  235. *********************
  236.  
  237.  
  238. ***** HPropClass *****
  239.          CLASS     HPropClass,GuiRootClass
  240.  
  241.          METHOD    HPM_Incr
  242.          METHOD    HPM_Decr
  243.  
  244.          DATA_LONG hpr,HPDT_Position,1
  245.          DATA_LONG hpr,HPDT_Total,1
  246.          DATA_LONG hpr,HPDT_Visible,1
  247.  
  248.          DATA_LONG hpr,HPDT_MaxPos,1
  249.          DATA_LONG hpr,HPDT_KnobPos,1
  250.          DATA_LONG hpr,HPDT_KnobSize,1
  251.          DATA_SIZE hpr_DataSize
  252.  
  253. HPROP    macro     ; position,total,visible,hook,hookdata
  254.          dc.l      OBJ_Begin,_HPropClass
  255.          dc.l      HPDT_Position,\1
  256.          dc.l      HPDT_Total,\2
  257.          dc.l      HPDT_Visible,\3
  258.          SETHOOK   \4,\5
  259.          dc.l      OBJ_End
  260.          endm
  261. **********************
  262.  
  263. ***** VPropClass *****
  264.          CLASS     VPropClass,GuiRootClass
  265.  
  266.          METHOD    VPM_Incr
  267.          METHOD    VPM_Decr
  268.  
  269.          DATA_LONG vpr,VPDT_Position,1
  270.          DATA_LONG vpr,VPDT_Total,1
  271.          DATA_LONG vpr,VPDT_Visible,1
  272.  
  273.          DATA_LONG vpr,VPDT_MaxPos,1
  274.          DATA_LONG vpr,VPDT_KnobPos,1
  275.          DATA_LONG vpr,VPDT_KnobSize,1
  276.          DATA_SIZE vpr_DataSize
  277.  
  278. VPROP    macro     ; position,total,visible,hook,hookdata
  279.          dc.l      OBJ_Begin,_VPropClass
  280.          dc.l      VPDT_Position,\1
  281.          dc.l      VPDT_Total,\2
  282.          dc.l      VPDT_Visible,\3
  283.          SETHOOK   \4,\5
  284.          dc.l      OBJ_End
  285.          endm
  286. **********************
  287.  
  288. ***** HScrollerClass *****
  289.          CLASS     HScrollerClass,GuiRootClass
  290.  
  291.          METHOD    HSM_Incr
  292.          METHOD    HSM_Decr
  293.  
  294.          DATA_LONG hsc,HSDT_Position,1
  295.          DATA_LONG hsc,HSDT_Total,1
  296.          DATA_LONG hsc,HSDT_Visible,1
  297.  
  298.          DATA_LONG hsc,HSDT_Prop,1
  299.          DATA_SIZE hsc_DataSize
  300.  
  301. HSCROLLR macro     ; position,total,visible,hook,hookdata
  302.          dc.l      OBJ_Begin,_HScrollerClass
  303.          dc.l      HSDT_Position,\1
  304.          dc.l      HSDT_Total,\2
  305.          dc.l      HSDT_Visible,\3
  306.          SETHOOK   \4,\5
  307.          dc.l      OBJ_End
  308.          endm
  309. **************************
  310.  
  311. ***** VScrollerClass *****
  312.          CLASS     VScrollerClass,GuiRootClass
  313.  
  314.          METHOD    VSM_Incr
  315.          METHOD    VSM_Decr
  316.  
  317.          DATA_LONG vsc,VSDT_Position,1
  318.          DATA_LONG vsc,VSDT_Total,1
  319.          DATA_LONG vsc,VSDT_Visible,1
  320.  
  321.          DATA_LONG vsc,VSDT_Prop,1
  322.          DATA_SIZE vsc_DataSize
  323.  
  324. VSCROLLR macro     ; position,total,visible,hook,hookdata
  325.          dc.l      OBJ_Begin,_VScrollerClass
  326.          dc.l      VSDT_Position,\1
  327.          dc.l      VSDT_Total,\2
  328.          dc.l      VSDT_Visible,\3
  329.          SETHOOK   \4,\5
  330.          dc.l      OBJ_End
  331.          endm
  332. **************************
  333.  
  334. ***** ListViewClass *****
  335.          CLASS     ListViewClass,GuiRootClass
  336.  
  337.          DATA_LONG lvi,LVDT_List,1
  338.          DATA_LONG lvi,LVDT_Selected,1
  339.  
  340.          DATA_LONG lvi,LVDT_Scroller,1
  341.          DATA_LONG lvi,LVDT_ShowScroller,1
  342.          DATA_LONG lvi,LVDT_ClearScroller,1
  343.          DATA_LONG lvi,LVDT_Total,1
  344.          DATA_LONG lvi,LVDT_FirstVis,1
  345.          DATA_LONG lvi,LVDT_LastVis,1
  346.          DATA_LONG lvi,LVDT_FVNum,1
  347.          DATA_LONG lvi,LVDT_LVNum,1
  348.          DATA_LONG lvi,LVDT_NumVis,1
  349.          DATA_LONG lvi,LVDT_ClrTop,1
  350.          DATA_LONG lvi,LVDT_ClrHeight,1
  351.          DATA_LONG lvi,LVDT_Width,1
  352.          DATA_LONG lvi,LVDT_Right,1
  353.          DATA_SIZE lvi_DataSize
  354.  
  355. LISTVIEW macro     ; list,selected,first,hook,hookdata
  356.          dc.l      OBJ_Begin,_ListViewClass
  357.          dc.l      LVDT_List,\1
  358.          dc.l      LVDT_Selected,\2
  359.          dc.l      LVDT_FirstVis,\3
  360.          SETHOOK   \4,\5
  361.          dc.l      OBJ_End
  362.          endm
  363.  
  364.          rsreset
  365. ListViewEntry      rs.b      0
  366. lve_Next           rs.l      1
  367. lve_Prev           rs.l      1
  368. lve_String         rs.l      1
  369. lve_Color          rs.l      1
  370. lve_Size           rs.b      0
  371. *************************
  372.  
  373.  
  374. ***** OLD OBSOLETE SYSTEM *****
  375.          rsreset
  376. GuiEntry rs.b      0
  377. ge_Class           rs.l      1
  378. ge_Data            rs.l      1
  379. ge_Data2           rs.l      1
  380. ge_Data3           rs.l      1
  381. ge_Hook            rs.l      1
  382. ge_ID              rs.l      1
  383. ge_Temp            rs.l      1
  384. ge_Temp2           rs.l      1
  385. ge_Temp3           rs.l      1
  386. ge_Next            rs.l      1
  387. ge_MinWidth        rs.l      1
  388. ge_MinHeight       rs.l      1
  389. ge_MaxWidth        rs.l      1
  390. ge_MaxHeight       rs.l      1
  391. ge_Domain          rs.b      gd_Size
  392. ge_Size            rs.b      0
  393.  
  394.          rsreset
  395. GuiClass rs.b      0
  396. gc_GetMinMax       rs.l      1
  397. gc_Layout          rs.l      1
  398. gc_Render          rs.l      1
  399. gc_Click           rs.l      1
  400. gc_Size            rs.b      0
  401.  
  402. GENTRY   macro     ; gentry class,data,hook,[ID],[data2],[data3],[data4]
  403.          dc.l      \1,\2
  404.  
  405.          IFLT      NARG-5
  406.          dc.l      0
  407.          ELSE
  408.          dc.l      \5
  409.          ENDIF
  410.  
  411.          IFLT      NARG-6
  412.          dc.l      0
  413.          ELSE
  414.          dc.l      \6
  415.          ENDIF
  416.  
  417.          dc.l      \3
  418.  
  419.          IFLT      NARG-4
  420.          dc.l      0
  421.          ELSE
  422.          dc.l      \4
  423.          ENDIF
  424.  
  425.          ds.b      ge_Size-24
  426.          endm
  427.  
  428. GEND     macro
  429.          ds.b      ge_Size
  430.          endm
  431.  
  432. *****************
  433.